// import focusConfig from '../../../focus.config.js'
const version = "2.0.76";


// 获取token信息
function token() {
	// 初始化返回值
	var data_return = false;
	// 读取临时缓存
	var save_short = uni.$focus.varForever('get');
	// 如果数据存在
	if (save_short && save_short.token) { data_return = save_short.token; }
	// 不存在则提示
	else {  }
	// 返回数据
	return data_return;
}
// 状态变量
let state_isLocation = false; // 是否进行过定位记录
//待办事项ID
let user_id = ''

export default {
	//未读消息数量
	getMessageNotReading:function(objC){
		uni.$focus.request({
			method: "get",
			url: `/aq_user/v2/application/getApplicationNewsCount`,
			header: {
				"token": token()
			},
			loadingText: '',
			success: (res) => {
				// 回调数据
				if (objC.success) { objC.success(res); }
			},
			fail:(err)=>{
				if (objC.fail) { objC.fail(err); }
			}
		});
	},
	//消息列表	
	getMessageList:function(objC){
		uni.$focus.request({
			data:objC.data,
			method: "get",
			loadingText: '',
			url: `/aq_user/v2/application/getApplicationNewsList`,
			header: {
				"token": token()
			},
			success: (res) => {
				// 回调数据
				if (objC.success) { objC.success(res); }
			},
			fail:(err)=>{
				if (objC.fail) { objC.fail(err); }
			}
		});
	},
	//应用服务列表
	getAppList:function(objC){
		uni.$focus.request({
			method: "get",
			loadingText: '',
			url: `/aq_user/v2/application/getApplicationList`,
			header: {
				"token": token()
			},
			success: (res) => {
				// 回调数据
				if (objC.success) { objC.success(res); }
			},
			fail:(err)=>{
				if (objC.fail) { objC.fail(err); }
			}
		});
	},
	//详情---学习记录
	getScoreLogWx:function(objC){
		uni.$focus.request({
			method: "get",
			data:objC.data,
			loadingText: '',
			url: `/aq_course/app/v2/cert/scoreLogWx`,
			header: {
				"token": token()
			},
			success: (res) => {
				// 回调数据
				if (objC.success) { objC.success(res); }
			},
			fail:(err)=>{
				if (objC.fail) { objC.fail(err); }
			}
		});
	},
	//详情---周期时间
	getScoreDate:function(objC){
		uni.$focus.request({
			method: "get",
			data:objC.data,
			loadingText: '',
			url: `/aq_course/app/v2/cert/scoreDate`,
			header: {
				"token": token()
			},
			success: (res) => {
				// 回调数据
				if (objC.success) { objC.success(res); }
			},
			fail:(err)=>{
				if (objC.fail) { objC.fail(err); }
			}
		});
	},
	//证书列表
	getCertificatePageList:function(objC){
		uni.$focus.request({
			method: "get",
			data:{
				...objC.data,
				user_id:uni.getStorageSync("eduInfo").userId,
				id_card:uni.getStorageSync("eduInfo").id_card2
			},
			loadingText: '',
			url: `/aq_course/app/v2/cert/certList`,
			header: {
				"token": token()
			},
			success: (res) => {
				// 回调数据
				if (objC.success) { objC.success(res); }
			},
			fail:(err)=>{
				if (objC.fail) { objC.fail(err); }
			}
		});
	},
	//点击切换项目
	changeUserProject(objC){
		uni.$focus.request({
			method: "post",
			data: objC.data,
			url: '/aq_user/v2/sentry/updateUserProject',
			header: {
				"token": token() || ''
			},
			loadingText: '',
			openToast: false,
			fail: err => {
				if(objC.fail){
					objC.fail(err)
				}
				},
			success: (res) => {
				objC.success(res)
			}
		});
	},
	//更换项目的项目列表
	getUserProject(objC){
		uni.$focus.request({
			method: "get",
			url: '/aq_user/v2/sentry/getAgProject',
			header: {
				"token": token() || ''
			},
			loadingText: '',
			openToast: false,
			fail: err => {
				if(objC.fail){
					objC.fail(err)
				}
			},
			success: (res) => {
				objC.success(res)
			}
		});
	},
	//项目信息更新
	updateUserProject(objC){
		uni.$focus.request({
			method: "get",
			url: '/aq_user/v2/user/updateUserProject',
			header: {
				"token": token() || ''
			},
			loadingText: '',
			openToast: false,
			fail: err => {
				if(objC.fail){
					objC.fail(err)
				}
				},
			success: (res) => {
				objC.success(res)
			}
		});
	},
	
		//刷新token
	tokenGet(objC){
		uni.$focus.request({
			method: "post",
			url: '/aq_user/v2/common/refreshToken',
			header: {
				"token": token() || ''
			},
			loadingText: '',
			openToast: false,
			fail: err => {if(objC.fail){objC.fail(err)}},
			success: (res) => {
				// 用户信息数据
				var user_yuan = res.user; // 原始数据
				var user_result = { // 结果数据
					token: res.token, // 登录鉴权
				};
				// 合并对象
				user_result = Object.assign(user_result, user_yuan);
				// 将合并信息 保存到→ 永久缓存
				var isSuc_forever = uni.$focus.varForever('set', user_result);
				// 将合并信息 保存到→ 临时缓存
				uni.$focus.varShortTime('set', user_result);
				// 如果保存成功
				if (isSuc_forever == true) {
					// 如果还未定位，进行定位记录
					if (state_isLocation == false) { this.locationRecord(); }
					// 回调数据
					if (objC.success) { objC.success(user_result); }
				}
				// 如果保存失败
				else {
					// 弹框提示
					uni.showToast({
						title: '信息缓存失败',
						icon: 'none',
						duration: 2500,
					});
				}
				
			}
		});
	},
		//获取文化程度和政治面貌列表
	getPoliticsAndDiplomaList: function (objC) {
		// 验证版本号
		uni.$focus.request({
			method: "get",
			url: '/aq_user/v2/sentry/getConfigList',
			header: {
				"token": token() || ''
			},
			data:{type:objC.type},
			loadingText: '',
			openToast: false,
			fail: err => {if (objC.fail) { objC.fail(err) }},
			success: res => {
				if (objC.success) { objC.success(res); }
			}
		});
	},
	//==========================================用户可切换身份
	getChangeList: function (objC) {
		uni.$focus.request({
			method: "get",
			url: '/aq_user/v2/sentry/getPidSentryListV2',
			header: {
				"token": token()
			},
			loadingText: '',
			openToast: false,
			fail: err => {
				if(objC.fail){
					objC.fail(err)
				}
			},
			success: res => {
				objC.success(res)
			}
		});
	},
	
	//===============================================打卡页面获取用户地址
	getUserLocation: function (objC) {
		uni.$focus.request({
			method: "get",
			url: `/aq_course/app/v2/clockin/clockView?${objC.urlData}`,
			header: {
				"token": token()
			},
			loadingText: '',
			openToast: false,
			fail: err => {
				if(objC.fail){
					objC.fail(err)
				}
			},
			success: res => {
				objC.success(res)
			}
		});
	},
	
	//==================================+=============打卡照片上传
	addCheckWork: function (objC) {
		uni.$focus.request({
			method: "post",
			url: `/aq_course/app/v2/clockin/addClockIn`,
			header: {
				"token": token()
			},
			openMask: false,
			data: objC.data,
			loadingText: '',
			openToast: false,
			fail: err => {
				if(objC.fail){
					objC.fail(err)
				}
			},
			success: res => {
				objC.success(res)
			}
		});
	},
	//获取当天打卡信息
	getDayCheck:function(objC){
		uni.$focus.request({
			method: "get",
			url: `/aq_course/app/v2/clockin/clockLogList?day=${objC.data}`,
			header: {
				"token": token()
			},
			data: objC.data,
			loadingText: '',
			openToast: false,
			fail: err => {
				if(objC.fail){
					objC.fail(err)
				}
			},
			success: res => {
				objC.success(res)
			}
		});
	}
	,
	//======================================================获取每月打卡信息
	getMonthinfo: function (objC) {
		uni.$focus.request({
			method: "get",
			url: `/aq_course/app/v2/clockin/clockLogDateList?years=${objC.data}`,
			header: {
				"token": token()
			},
			loadingText: '',
			openToast: false,
			fail: err => {
				if(objC.fail){
					objC.fail(err)
				}
			},
			success: res => {
				objC.success(res)
			}
		});
	},
	// ======================================================== 验证版本号
	checkVersion: function (objC) {
		// 普通传递数据
		var mydata = Object.assign({
			version_number: version
		});
		// 验证版本号
		uni.$focus.request({
			method: "get",
			url: '/aq_attach/v2/upload/getVersionStatus',
			data: mydata,
			loadingText: '',
			openToast: false,
			fail: err => {
				// 保存到→ 临时缓存 是否审核中(true: 审核中, false: 线上使用版本)
				uni.$focus.varShortTime('set', { versionStatus: false });
			},
			success: res => {
				const versionObj = { versionStatus: res.status }
				// 保存到→ 临时缓存 是否审核中(true: 审核中, false: 线上使用版本)
				uni.$focus.varShortTime('set', versionObj);
			}
		});
	},
	
	/**
	 * @description 获取规则通告
	 * @param {Object} objC
	 */
	getRuleNotice: function (objC) {
		uni.$focus.request({
			data:objC.data,
			method: "get",
			url: '/aq_course/app/v2/home/courseCensus',
			header: {
				"token": token() || ''
			},
			loadingText: '',
			openToast: false,
			openGreen: true, // 开启绿色通道
			fail: err => {if (objC.fail) { objC.fail(err) }},
			success: res => {
				if (objC.success) { objC.success(res); }
			},
		});
	},
	
	// 通过authCode获取用户信息
	authCodeGetUserInfo: function (objC) {
		uni.$focus.request({
			data:objC.data,
			method: "post",
			url: '/aq_user/v2/identityV2/getUserContent',
			loadingText: '',
			openToast: false,
			openGreen: true, // 开启绿色通道
			fail: err => {if (objC.fail) { objC.fail(err) }},
			success: res => {
				// if (objC.success) { objC.success(res); }
				// 用户信息数据
				var user_yuan = res.user; // 原始数据
				var user_result = { // 结果数据
					token: res.token, // 登录鉴权
				};
				
				// 合并对象
				user_result = Object.assign(user_result, user_yuan);
				// 将合并信息 保存到→ 永久缓存
				var isSuc_forever = uni.$focus.varForever('set', user_result);
				// 将合并信息 保存到→ 临时缓存
				uni.$focus.varShortTime('set', user_result);
				
				// 如果保存成功
				if (isSuc_forever == true) {
					// 如果还未定位，进行定位记录
					if (state_isLocation == false) { this.locationRecord(); }
					// 回调数据
					if (objC.success) { objC.success(user_result); }
				}
				// 如果保存失败
				else {
					// 弹框提示
					uni.showToast({
						title: '信息缓存失败',
						icon: 'none',
						duration: 2500,
					});
				}
			},
		});
	},
	
	// ======================================================== 登录操作
	// 微信手机号码登录
	// login: function (objC) {
		
	// 	// 普通传递数据
	// 	var mydata = Object.assign({
	// 		wxCode: '', // 微信登录code
	// 		encryptedData: '', // 加密数据字符串
	// 		iv: '', // 加密向量
	// 	}, objC.data);
		
	// 	uni.$focus.request({
	// 		method: "post",
	// 		url: '/aq_user/v2/common/getWxUserMobile',
	// 		data: mydata,
	// 		loadingText: '登录中',
	// 		fail: (res) => { if (objC.fail) { objC.fail(res) } },
	// 		success: (res) => {
	// 			// 用户信息数据
	// 			var user_yuan = res.user; // 原始数据
	// 			var user_result = { // 结果数据
	// 				token: res.token, // 登录鉴权
	// 			};
				
	// 			// 合并对象
	// 			user_result = Object.assign(user_result, user_yuan);
	// 			// 将合并信息 保存到→ 永久缓存
	// 			var isSuc_forever = uni.$focus.varForever('set', user_result);
	// 			// 将合并信息 保存到→ 临时缓存
	// 			uni.$focus.varShortTime('set', user_result);
				
	// 			// 如果保存成功
	// 			if (isSuc_forever == true) {
	// 				// 如果还未定位，进行定位记录
	// 				if (state_isLocation == false) { this.locationRecord(); }
	// 				// 回调数据
	// 				if (objC.success) { objC.success(user_result); }
	// 			}
				
	// 			// 如果保存失败
	// 			else {
	// 				// 弹框提示
	// 				uni.showToast({
	// 					title: '信息缓存失败',
	// 					icon: 'none',
	// 					duration: 2500,
	// 				});
	// 			}
				
	// 		}
	// 	});
		
	// },
	
	// 用户位置坐标记录
	locationRecord: function () {
		// 获取定位信息
		uni.getLocation({
			type: 'gcj02',
			success: (locationD) => {
				
				// 请求数据
				uni.$focus.request({
					method: "post",
					url: '/aq_user/v2/user/updateCoordinate',
					data: {
						coordinate: locationD.longitude + ',' + locationD.latitude, // 坐标
					},
					loadingText: '正在记录位置',
					header: {
						"token": token()
					},
					openToast: false,
					success: (res) => {
						// 状态修改
						state_isLocation = true;
					}
				});
				
			}
		});
	},
	
	// 用户身份列表
	personList: function (objC) {
		
		// 请求数据
		uni.$focus.request({
			method: "get",
			url: '/aq_user/v2/sentry/getPidSentryList',
			loadingText: '请求身份列表',
			header: {
				"token": token()
			},
			openToast: false,
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				// 身份数组数据
				var list_yuan = res; // 原始数据
				var list_result = []; // 结果数据
				
				// 循环原始数据
				for (let i = 0; i < list_yuan.length; i++)
				{
					// 节点 - 一个身份对象
					var ele_person = list_yuan[i];
					// 重构身份对象
					var obj_person = {
						key: 'personKey_' + ele_person.id, // 循环key值
						id: ele_person.id, // 身份id
						name: ele_person.sentry_name, // 身份名称
					};
					// 将重构后的对象添加到结果数组
					list_result.push(obj_person);
				}
				
				// 返回信息封装
				var data_back = {
					"list": list_result,
				};
				// 回调数据
				if (objC.success) { objC.success(data_back); }
				
			}
		});
		
	},
	
	// 用户切换身份
	personChange: function (objC) {
		
		// 普通传递数据
		var mydata = Object.assign({
			sentry_pid: 0, // 身份ID
			type: 1, // 调用原因：1-初次登录注册  2-个人中心主动切换
		}, objC.data);
		// 请求数据
		uni.$focus.request({
			method: "put",
			url: '/aq_user/v2/sentry/editPidSentry',
			data: mydata,
			loadingText: '正在切换身份',
			header: {
				"token": token()
			},
			loadingDelayed: false,
			openMask: true,
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				// 回调数据
				if (objC.success) { objC.success(res); }
			}
		});
		
	},
	
	
	// ======================================================== 实名认证
	// 图片上传
	imgUpload: function (objC) {
		// 普通要传输的数据
		var mydata = Object.assign({
			file: '', // 文件资源地址
		}, objC.data);
		// 请求数据
		uni.$focus.upload({
			files: [
				{ name: 'file', path: mydata.file }
			],
			loadingText: '',
			url: '/aq_attach/v2/upload/file',
			header: {
				"token": token()
			},
			
			fail: (res) => { if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				// 返回数据封装
				var back = {
					id: res.attach_id,
					url: res.path,
				};
				// 成功回调
				if (objC.success) { objC.success(back); }
			}
		});
	},
	
	/**
	 * @description 人脸活体检测
	 * @param {Object} objC
	 */
	userLiveDetection: function(objC) {
		let access_token = '';
		// 从临时缓存中获取token鉴权
		const save_short = uni.$focus.varShortTime('get');
		if (save_short && save_short.baidu_access_token_face) { 
			access_token = save_short.baidu_access_token_face;
		};
		// 接口地址
		const myurl = `https://aip.baidubce.com/rest/2.0/face/v3/faceverify?access_token=${access_token}`;
		// 普通要传输的数据
		const mydata = Object.assign({
			image_type: 'BASE64', // 图片类型：base64编码后的图片数据，编码后的图片大小不超过2M
			image: '', // 图片信息
		}, objC.data);
		// 发起请求
		uni.request({
			method: 'POST',
			url: myurl,
			data: [mydata],
			header: { "content-type": "application/json" },
			fail: err => {
				// 失败回调
				if (objC.fail) { objC.fail(err); }
			},
			success: res => {
				// 如果状态码不为200，说明错误
				if (res.statusCode != 200){
					// 失败回调
					if (objC.fail) { objC.fail(res.data); }
				} else {
					// 200即为请求成功
					// 是否识别通过                    
					if (res.data.error_code == 0) {
						// 人脸如果不完整
						if (res.data.result.face_liveness < 0.1) {
							if (objC.fail) { 
								objC.fail(res.data)
							}  
						}else if (objC.success) { 
							objC.success(res.data)
						}
					}
					// 说明未通过
					else {  if (objC.fail) { objC.fail(res.data) }  }
				}
			},
		});
	},
	
	// 人脸检测
	userFaceDetection: function (objC) {
		
		// 弹框提示
		
		// access_token鉴权数据
		var access_token = '';
		// 从临时缓存中获取token鉴权
		var save_short = uni.$focus.varShortTime('get');
		if (save_short && save_short.baidu_access_token_face) { access_token = save_short.baidu_access_token_face; }
		// 接口地址
		var myurl = 'https://aip.baidubce.com/rest/2.0/face/v3/detect?access_token=' + access_token;
		
		// 普通要传输的数据
		var mydata = Object.assign({
			image_type: 'BASE64', // 图片类型：base64编码后的图片数据，编码后的图片大小不超过2M
			image: '', // 图片信息
			face_field: 'quality', // 额外的图片分析信息
			max_face_num: 1, // 最多处理人脸的数目
			face_type: 'LIVE', // 人脸的类型： LIVE-生活照  IDCARD-身份证芯片照  WATERMARK-带水印证件照  CERT-证件照片
			liveness_control: 'NORMAL', // 活体控制： NONE-不控制  LOW-宽松模式  NORMAL-普通模式  HIGH-严格模式
		}, objC.data);
		
		// 弹框提示
		uni.showLoading({ title: '正在检测...' });
		
		// 发起请求
		uni.request({
			method: 'POST',
			url: myurl,
			data: mydata,
			header: {
				"content-type": "application/json"
			},
			fail: (res) => {
				// 取消加载弹框
				uni.hideLoading();
				// 失败回调
				if (objC.fail) { objC.fail(res); }
			},
			success: (res) => {
				// 取消加载弹框
				uni.hideLoading();
				// 如果状态码不为200，说明错误
				if (res.statusCode != 200)
				{
					// 失败回调
					if (objC.fail) { objC.fail(res.data); }
				}
				// 200即为请求成功
				else {
					// 是否识别通过                    
					if (res.data.error_code == 0)
					{
						// 人脸如果不完整
						if (res.data.result.face_list && res.data.result.face_list[0].quality.completeness <= 0) {  if (objC.fail) { objC.fail(res.data); }  }
						// 成功回调
						else if (objC.success) { objC.success(res.data); }
					}
					// 说明未通过
					else {  if (objC.fail) { objC.fail(res.data); }  }
				}
			},
		});
		
	},
	
	// 人脸对比
	userFaceThan: function (objC) {
		// 弹框提示
		// access_token鉴权数据
		var access_token = '';
		// 从临时缓存中获取token鉴权
		var save_short = uni.$focus.varShortTime('get');
		if (save_short && save_short.baidu_access_token_face) { access_token = save_short.baidu_access_token_face; }
		// 接口地址
		var myurl = 'https://aip.baidubce.com/rest/2.0/face/v3/match?access_token=' + access_token;
		
		// 当前拍摄的实时照片数据
		var photo_new = Object.assign({
			image_type: 'BASE64', // 图片类型：base64编码后的图片数据，编码后的图片大小不超过2M
			image: '', // 图片信息
			face_type: 'LIVE', // 人脸的类型： LIVE-生活照  IDCARD-身份证芯片照  WATERMARK-带水印证件照  CERT-证件照片
			quality_control: 'NONE', // 图片质量条件： NONE-不控制  LOW-低质量即可  NORMAL-普通  HIGH-必须高质量
			liveness_control: 'NORMAL', // 活体控制： NONE-不控制  LOW-宽松模式  NORMAL-普通模式  HIGH-严格模式
			score: 80, // 相似度通过分数
		}, objC.data);
		
		// 如果存在个人真实照片
		if (save_short && save_short.scene_img_url){
			// 个人真实照片对象封装
			var photo_own = {
				image_type: 'URL', // 图片类型：图片的URL地址
				image: save_short.scene_img_url, // 图片信息
				face_type: 'LIVE', // 人脸的类型： LIVE-生活照  IDCARD-身份证芯片照  WATERMARK-带水印证件照  CERT-证件照片
				quality_control: 'NONE', // 图片质量条件： NONE-不控制  LOW-低质量即可  NORMAL-普通  HIGH-必须高质量
				liveness_control: 'NORMAL', // 活体控制： NONE-不控制  LOW-宽松模式  NORMAL-普通模式  HIGH-严格模式
			};
			
			// 发起请求
			uni.request({
				method: 'POST',
				url: myurl,
				data: [photo_own, photo_new],
				header: {
					"Content-Type": "application/json"
				},
				fail: (res) => {
					// 失败回调
					if (objC.fail) { objC.fail(res); }
				},
				success: (res) => {
					// 如果状态码不为200，说明错误
					if (res.statusCode != 200)
					{
						// 失败回调
						if (objC.fail) { objC.fail(res.data); }
					}
					// 200即为请求成功
					else {
						// 是否识别通过                                                                // 成功回调
						if (res.data.error_code == 0 && res.data.result.score >= photo_new.score) {  if (objC.success) { objC.success(res.data); }  }
						// 说明未通过
						else {  if (objC.fail) { objC.fail(res.data); }  }
					}
				},
			});
		}
		
		// 没有个人真实照片的情况
		else {
			// 失败回调
			if (objC.fail) { objC.fail({ code: 123, data: {}, msg: '未找到个人真实照片' }); }
		}
		
	},
	
	
	idCardDistinguish: function(objC){
		var access_token = '';
		// 从临时缓存中获取token鉴权
		var save_short = uni.$focus.varShortTime('get');
		if (save_short && save_short.baidu_access_token_font) { access_token = save_short.baidu_access_token_font; }
		// 接口地址
		var myurl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=' + access_token;
		var mydata = Object.assign({
			image: '', // 图片信息：base64编码后的图片数据，编码后的图片大小不超过4M
			id_card_side:''
		}, objC.data);
		uni.showLoading({ title: '正在识别...' });
		uni.request({
				method: 'POST',
				url: myurl,
				data: mydata,
				type: 2,
				toast: false,
				header: {
					'Content-Type': 'application/x-www-form-urlencoded'
			},
			fail: (err) => {
				uni.hideLoading();
				if(objC.fail) {objC.fail(res)}
			},
			success:(res) =>{
				uni.hideLoading();
				objC.success(res.data)
			}
		})
		
	},
	
	
	// 通用文字识别（标准版）
	fontDetectionPublic: function (objC) {
		// access_token鉴权数据
		var access_token = '';
		// 从临时缓存中获取token鉴权
		var save_short = uni.$focus.varShortTime('get');
		if (save_short && save_short.baidu_access_token_font) { access_token = save_short.baidu_access_token_font; }
		// 接口地址
		var myurl = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=' + access_token;
		
		// 普通要传输的数据
		var mydata = Object.assign({
			image: '', // 图片信息：base64编码后的图片数据，编码后的图片大小不超过4M
			language_type: 'CHN_ENG', // 识别语言类型：中英文混合
			detect_direction: 'true', // 是否检测图像朝向
			paragraph: 'false', // 是否输出段落信息
			probability: 'false', // 是否返回识别结果中每一行的置信度
		}, objC.data);
		
		// 弹框提示
		uni.showLoading({ title: '正在识别...' });
		
		// 发起请求
		uni.request({
			method: 'POST',
			url: myurl,
			data: mydata,
			type: 2,
			toast: false,
			header: {
				'Content-Type': 'application/x-www-form-urlencoded'
			},
			fail: (err) => {
				// 取消加载弹框
				uni.hideLoading();
				// 失败回调
				if (objC.fail) { objC.fail(e); }
			},
			success: (res) => {
				// 取消加载弹框
				uni.hideLoading();
				// 如果状态码不为200，说明错误
				if (res.statusCode != 200){
					// 失败回调
					if (objC.fail) { objC.fail(res.data); }
				}else {// 200即为请求成功
					// 1. 百度平台报错                // 失败回调
					if (res.data.error_code > 0) { objC.fail(res.data); }
					// 2. 正常情况下
					else {
						// 返回数据
						var backData = {
							direction: res.data.direction, // 图像方向：0-正向 1-逆时针90度 2-逆时针180度 3-逆时针270度
							words: res.data.words_result, // 识别到的文字段落列表
						};
						// 成功回调
						if (objC.success) { objC.success(backData); }
					}
				}
			},
		});
	},

	
	//用户实名认证
	userRealNameSend: function (objC) {
		// 普通参数		
		// 接口请求
		uni.$focus.request({
			method: "PUT",
			url: "/aq_user/v2/user/realNameAgion",
			data: objC.data,
			loadingText: '正在认证',
			header: {
				"token": token()
			},
			loadingDelayed: false,
			openMask: true,
			openToast: false,
			fail: (err) => {
				if (objC.fail) { objC.fail(err); }
			},
			success: (res) => {
				if (objC.success) { objC.success(res); }
			}
		});
		
	},
	
	// ======================================================== 学习情况
	// 获取用户学分统计
	scoreForStudy: function (objC) {
		
		// 获取用户token
		var token_result = token();
		
		// 请求数据
		uni.$focus.request({
			data: objC.data,
			method: "get",
			url: '/aq_course/app/v2/home/getUserScore',
			loadingText: '获取学分统计',
			openToast: false,
			openGreen:true,
			header: {
				"token": token_result ? token_result : '',
			},
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				
				// 学分统计对象
				var info_yuan = res.info ? res.info : {}; // 原始数据
				var info_back = {}; // 结果数据
				
				// 重构结果数据
				info_back = {
					// 完成率
					progress: info_yuan.comp_rate,
					// 必修
					scoreGet_bi: info_yuan.study_bi_score ? info_yuan.study_bi_score : 0, // 已获学时
					scoreTotal_bi: info_yuan.bi_score ? info_yuan.bi_score : 0, // 总学时
					// 选修
					scoreGet_xuan: info_yuan.study_xuan_score ? info_yuan.study_xuan_score : 0, // 已获学时
					scoreTotal_xuan: info_yuan.xuan_score ? info_yuan.xuan_score : 0, // 总学时
				};
				
				// 回调数据封装
				var data_callback = {
					"info": info_back
				};
				// 回调数据
				if (objC.success) { objC.success(data_callback); }
				
			}
		});
		
	},
	
	// 学习记录
	historyForStudy: function (objC) {
		
		// 普通要传输的数据
		var mydata = Object.assign({
			start_date: null, // 开始时间段 例2021-01
			end_date: null, // 结束时间段 例2021-06
			year: null, // 年份 例 2021
		}, objC.data);
		
		// 对参数进行重构（仅保留有效值）
		var obj_mydata = {};
		for (let k in mydata) { if (mydata[k]) { obj_mydata[k] = mydata[k]; } }
		
		// 请求数据
		uni.$focus.request({
			method: "get",
			url: '/aq_course/app/v2/course/myStudyLog',
			data: obj_mydata,
			loadingText: '获取学习记录',
			header: {
				"token": token(),
			},
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				if (objC.success) { objC.success(res); }
				// // 日期选择范围
				// var data_yuan = res ? res : {}; // 原始数据
				// var data_back = {}; // 结果数据
				// // 范围数据重构
				// data_back = {
				// 	start: data_yuan.select_start_date, // 开始时间
				// 	end: data_yuan.select_end_date, // 结束时间
				// };
				//
				// // 学习记录列表
				// var list_yuan = res.list ? res.list : []; // 原始数据
				// var list_back = []; // 结果数据
				// // 循环原始数据
				// for (let i = 0; i < list_yuan.length; i++)
				// {
				// 	// 节点 - 一个时间点对象
				// 	let ele_doint = list_yuan[i];
				// 	// 重构时间点对象
				// 	let obj_doint = {
				// 		"key": 'lineDointKey_' + ele_doint.date, // 循环key值
				// 		time: ele_doint.date, // 时间轴显示时间
				// 		state: ele_lesson.study_status, // 学习状态：0-未修满  1-已修满
				// 		stateTxt: ele_lesson.study_status_txt ? ele_lesson.study_status_txt : 0, // 状态文字
				// 		// 必修
				// 		scoreGet_bi: ele_doint.study_bi_score ? ele_doint.study_bi_score : 0, // 已获学时
				// 		scoreTotal_bi: ele_doint.total_bi_score ? ele_doint.total_bi_score : 0, // 总学时
				// 		// 选修
				// 		scoreGet_xuan: ele_doint.study_xuan_score ? ele_doint.study_xuan_score : 0, // 已获学时
				// 		scoreTotal_xuan: ele_doint.total_xuan_score ? ele_doint.total_xuan_score : 0, // 总学时
				// 	};
				// 	// 将重构对象 添加到 结果数组
				// 	list_back.push(obj_doint);
				// }
				//
				// // 回调数据封装
				// var data_callback = {
				// 	"info": data_back,
				// 	"list": list_back,
				// };
				// 回调数据
				// if (objC.success) { objC.success(data_callback); }
			}
		});
		
	},
	
	// 待办事项
	thingsWillGo: function (objC) {
		
		// 获取用户token
		var token_result = token();
		
		// 请求数据
		uni.$focus.request({
			method: "get",
			url: '/aq_course/app/v2/home/stayDo',
			// loadingText: '获取待办事项',
			openToast: false,
			openGreen: true,
			header: {  
				"token": token_result ? token_result : '',
			},
			fail: (err) => {
				if (objC.fail) { objC.fail(err); } 
			},
			success: (res) => {
				// 待办事项对象
				// var info_yuan = res.info ? res.info : {}; // 原始数据
				var info_yuan = {};
				if (Object.keys(res.examinee).length) {
					info_yuan = {
						id: res.examinee.id, // 待办事项id
						type: res.examinee.type, // 待办事项类型：1-登录事务 2-实名事务 3-课程事务 0-其他事务
						label: res.examinee.label, // 标签文本
						title: res.examinee.title, // 事项标题
						btnText: res.examinee.btnText, // 按钮上面的文字
						path: res.examinee.path, // 跳转url地址
						remark: res.examinee.remark, // 备注说明
						isMust: res.examinee.is_must,
						isQuestion: res.examinee.is_question,//是否填写问卷
						examArray: res.examinee.exam_array//获取考生信息
					}
				}else{
					info_yuan = res.info
				}
				var info_back = {}; // 结果数据
				this.user_id = (res.info.id || res.examinee.id) + ''
				// 重构结果数据
				info_back = {
					id: info_yuan.id, // 待办事项id
					type: info_yuan.type, // 待办事项类型：1-登录事务 2-实名事务 3-课程事务 0-其他事务
					label: info_yuan.label, // 标签文本
					title: info_yuan.title, // 事项标题
					btnText: info_yuan.btnText, // 按钮上面的文字
					path: info_yuan.path, // 跳转url地址
					remark: info_yuan.remark, // 备注说明
					isMust: info_yuan.is_must, // 必/选修 (type=3时携带)
					isQuestion: info_yuan.isQuestion,//是否填写问卷
					examArray: info_yuan.examArray//获取考生信息
				};
				
				// 回调数据封装
				var data_callback = {
					"info": info_back
				};
				// 回调数据
				if (objC.success) { objC.success(data_callback); }
			}
		});
		
	},
	
	//获取准考证信息
	getTicket:function(objC){
		uni.$focus.request({
			method: "get",
			url: '/aq_course/app/v2/home/stayDo',
			loadingText: '获取待办事项',
			openToast: false,
			header: {  
				"token": token_result ? token_result : '',
			},
			success:res=>{
				if(objC.success){
				}
			}
			})
	},

	
	//准考证人脸识别
	uploadExamFace: function(objC){
		uni.$focus.request({
			data: objC.data,
			loadingText: '人脸识别中',
			method: "post",
			url: '/aq_user/v2/examinee/getImg',
			header: {
				"token": token()
			},
			fail: (res) => { if (objC.fail) { objC.fail(res); } },
			success: (res) => {
				// 回调数据
				if (objC.success) { objC.success(res); }
			}
		});
	},
	// ======================================================== 个人中心信息读写
	// 我的信息总数据
	userInfoGet: function (objC) {
		// 请求数据
		uni.$focus.request({
			method: "get",
			url: '/aq_user/v2/user/getUserInfo',
			loadingText: '获取用户详情',
			header: {
				"token": token(),
			},
			openToast: false,
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				// 待办事项对象
				var info_yuan = res ? res : {}; // 原始数据
				var info_back = {}; // 结果数据
				// 重构结果数据
				info_back = {
					// 企业信息
					sentryPid:info_yuan.sentry_pid,//身份id
					person: info_yuan.sentry_pid_name, // 切换身份
					project: info_yuan.project_name, // 所属项目
					projectId:info_yuan.project_id,//项目id
					company: info_yuan.work_name, // 工作单位
					department: info_yuan.section_name, // 所在部门
					grade: info_yuan.sentry_guan_personal_name, // 任职职务级别
					jobs: info_yuan.sentry_personal_name, // 工种
					jobsNumber: info_yuan.sentry_personal_name ? info_yuan.sentry_personal_name.split(',').length : 0, // 工种数量
					// 帐号信息
					portrait: info_yuan.img, // 头像
					nickname: info_yuan.nickname, // 昵称
					sex: info_yuan.sex, // 性别
					tel: info_yuan.mobile, // 手机号码
					// 实名认证
					audit: info_yuan.is_auth, // 实名状态：0-未实名  1-实名中  2-实名通过
					whyForPass: info_yuan.auth_text, // 实名审核备注
					realphoto: info_yuan.scene_img, // 真实照片
					realname: info_yuan.real_name, // 真实姓名
					IDcard: info_yuan.id_card, // 身份证号码
					IDcardIMagFront:info_yuan.id_card_img,//身份证正面
					IDcardIMagBack:info_yuan.id_card_img_bm,//身份证背面
					nation:info_yuan.nation,//民族
					birth:info_yuan.date_of_birth,//出生日期
					signing:info_yuan.issuing_authority,//签发机关
					effectiveStart:info_yuan.start_date,//证件开始时间
					effectiveEnd:info_yuan.end_date,//证件有效期结束时间
					// address:info_yuan.card_address,//住址
					id_card2: info_yuan.id_card2,
					IDcardIMagBackId:info_yuan.id_card_img_bm_id,//背面身份证图片id
					IDcardIMagFrontId:info_yuan.id_card_img_id,//正面身份证图片id
					mobile2: info_yuan.mobile2,//手机
					culture:info_yuan.culture,//文凭
					politics:info_yuan.politics,//政治面貌
					realphotoId: info_yuan.scene_img_id, // 真实照片
					isAgAuth:info_yuan.is_ag_auth,
					isJwAgAuth:info_yuan.is_jw_ag_auth,//入库信息
					certNumber:info_yuan.cert_number,//证书id
					address:info_yuan.address,//住址
					userId:info_yuan.id,
				};	
				uni.setStorageSync("eduInfo",info_back)
				// 回调数据封装
				var data_callback = {
					"info": info_back
				};
				// 回调数据
				if (objC.success) { objC.success(data_callback); }
			}
		});
		
	},
	
	// 修改个人信息
	userInfoEdit: function (objC) {
		
		// 普通传递数据
		var mydata = Object.assign({
			field_name: '0', // 具体要修改的项标识
			value: 0, // 要修改为的显示结果
		}, objC.data);
		// 请求数据
		uni.$focus.request({
			method: "put",
			url: '/aq_user/v2/user/editUser',
			data: mydata,
			loadingText: '正在修改信息',
			header: {
				"token": token()
			},
			loadingDelayed: false,
			openMask: true,
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				uni.hideLoading()
				// 回调数据封装
				var data_call = {
					key: mydata.field_name,
					value: mydata.value,
				};
				
				// 回调数据
				if (objC.success) { objC.success(data_call); }
			}
		});
		
	},
	//修改政治面貌和文化程度
	politicsOrDiplomaEdit: function (objC) {
		// 请求数据
		uni.$focus.request({
			method: "put",
			url: '/aq_user/v2/user/editUserCulture',
			data: objC.data,
			loadingText: '正在修改信息',
			header: {
				"token": token()
			},
			loadingDelayed: false,
			openMask: true,
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				uni.hideLoading()
				// 回调数据
				if (objC.success) { objC.success(res); }
			}
		});
		
	},
	
	// 所属项目数据列表
	projectList: function (objC) {
		
		// 普通传递数据
		var mydata = Object.assign({
			name: '', // 搜索关键字
		}, objC.data);
		
		// 请求数据
		uni.$focus.request({
			method: "post",
			url: '/aq_user/v2/user/getUserProjectList',
			data: mydata,
			loadingText: '请求所属项目',
			header: {
				"token": token()
			},
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				
				// 身份数组数据
				var list_yuan = res; // 原始数据
				var list_result = []; // 结果数据
				
				// 循环原始数据
				for (let i = 0; i < list_yuan.length; i++)
				{
					// 节点 - 一个项目对象
					var ele_xiangmu = list_yuan[i];
					// 重构身份对象
					var obj_xiang = {
						key: 'xiangMuKey_' + ele_xiangmu.id, // 循环key值
						id: ele_xiangmu.id, // 身份id
						name: ele_xiangmu.name, // 身份名称
					};
					// 将重构后的对象添加到结果数组
					list_result.push(obj_xiang);
				}
				
				// 返回信息封装
				var data_back = {
					"list": list_result,
				};
				// 回调数据
				if (objC.success) { objC.success(data_back); }
				
			}
		});
		
	},
	
	// 工作单位数据列表
	companyList: function (objC) {
		
		// 普通传递数据
		var mydata = Object.assign({
			name: '', // 搜索关键字
		}, objC.data);
		
		// 请求数据
		uni.$focus.request({
			method: "post",
			url: '/aq_user/v2/user/getUserWorkList',
			data: mydata,
			loadingText: '请求工作单位',
			header: {
				"token": token()
			},
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				
				// 身份数组数据
				var list_yuan = res; // 原始数据
				var list_result = []; // 结果数据
				
				// 循环原始数据
				for (let i = 0; i < list_yuan.length; i++)
				{
					// 节点 - 一个工作单位对象
					var ele_danwei = list_yuan[i];
					// 重构身份对象
					var obj_danwei = {
						key: 'danWeiKey_' + ele_danwei.id, // 循环key值
						id: ele_danwei.id, // 身份id
						name: ele_danwei.name, // 身份名称
					};
					// 将重构后的对象添加到结果数组
					list_result.push(obj_danwei);
				}
				
				// 返回信息封装
				var data_back = {
					"list": list_result,
				};
				// 回调数据
				if (objC.success) { objC.success(data_back); }
				
			}
		});
		
	},
	
	/**
	 * @description 提交问卷调查
	 * @param {Object} objC
	 */
	submitSurcey: function (objC) {
		// 普通传递数据
		const mydata = objC.data
		// 请求数据
		uni.$focus.request({
			method: "post",
			url: '/aq_user/v2/examinee/add_examinee_question',
			data: mydata,
			loadingText: '提交中',
			header: {
				"token": token()
			},
			openMask: true, // 蒙层框开启
			openToast: false,
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {

				// 成功回调
				if (objC.success) { objC.success(res); }
			}
		});
	},

	//电子准考证信息
	admissionTicket: function (objC) {
		uni.$focus.request({
			method: "get",
			url: `/aq_user/v2/examinee/getExamineeInfo/${objC.data.examineeId}`,
			loadingText: '准考证信息请求中',
			header: {
				"token": token(),
			},
			fail: err => {
				if (objC.fail) { objC.fail(err); }
			},
			success: res => {
				var data_call = {
					//经纬度
					coordinate: res.coordinate,
					//测评计划
					examName: res.examName,
					//准考证号码
					examNumber: res.examNumber,
					//评测状态
					examStatusName: res.exam_status_name,
					//性别
					gender: res.gender,
					//身份证号
					idCard: res.idCard,
					//手机号
					phone: res.phone,
					//照片
					img: res.img,
					//评测时长
					kaoShiTime: res.kaoshi_time,
					//考生名称
					name: res.name,
					//报考岗位
					sentryName: res.sentryName,
					//科目名称
					subjectName: res.subjectName,
					//考试时间
					time: res.time,
					//教室名称
					roomName: res.roomName,
					//考场地址
					siteAddress: res.siteAddress,
					//考场名称
					siteName: res.siteName,
					//考生须知
					notice: res.notice,
					
					
				};
				// 回调数据
				if (objC.success) { objC.success(data_call,res); }
			}
		});
	},

	//直播入口
	liveEntryGet: function (objC) {

		var save_forever = uni.$focus.varForever().token;;
		// 请求数据
		uni.$focus.request({
			method: "get",
			url: '/aq_course/app/v2/livePlan/getLivePlanInfo',
			loadingText: '获取直播入口',
			header: {
				"token": save_forever ? save_forever : '',
			},
			openGreen: true, // 开启绿色通道
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				if (objC.success) { objC.success(res); }
			}
		});
		
	},

	//直播列表
	liveGetList: function (objC) {

		var save_forever = uni.$focus.varForever().token;
		// 请求数据
		uni.$focus.request({
			method: "get",
			url: '/aq_course/app/v2/livePlan/getLiveList',
			data: objC.data,
			loadingText: 'liveGetList',
			openToast: false,
			header: {
				"token": save_forever ? save_forever : '',
			},
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {
				var list_yuan = res; 
					var data_back = {
						"list": list_yuan,
					};
					// 回调数据
					if (objC.success) { objC.success(data_back); }
					
				}
		});
			
	},

	//提交 完善信息
	submitLive: function (objC) {
		// 普通传递数据
		var mydata = Object.assign({
			live_plan_id: '', // 直播ID
			type: '', // 登记状态
			name: '', 
			mobile: '', 
			id_card: '', 
			project_name: '', 
			work_name: '', 
			section_name: '',
		}, objC.data);
		
		// 请求数据
		uni.$focus.request({
			method: "post",
			url: '/aq_course/app/v2/livePlan/perfectInfo',
			data: mydata,
			loadingText: '提交中',
			header: {
				"token": token()
			},
			openMask: true, // 蒙层框开启
			openToast: false,
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => {

				// 成功回调
				if (objC.success) { objC.success(res); }
			}
		});
	},
	
	/**
	 * @description 获取直播详情
	 * @param {Object} objC
	 */
	getLiveDetail: function (objC) {
		// 请求数据
		uni.$focus.request({
			method: "get",
			url: `/aq_course/app/v2/livePlan/getLiveDetail/${objC.data.urlData.id}`,
			loadingText: '请稍后...',
			header: { "token": token() },
			openMask: true, // 蒙层框开启
			openToast: false,
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => { if (objC.success) { objC.success(res); } }
		});
	},
	
	/**
	 * @description 获取直播地址
	 * @param {Object} objC
	 */
	getLiveUrl: function (objC) {
		// 请求数据
		uni.$focus.request({
			method: "get",
			url: `/aq_course/app/v2/livePlan/enterLive/${objC.data.urlData.id}`,
			loadingText: '请稍后...',
			header: { "token": token() },
			openMask: true, // 蒙层框开启
			openToast: false,
			fail: (res) => {  if (objC.fail) { objC.fail(res); }  },
			success: (res) => { if (objC.success) { objC.success(res); } }
		});
	}
	
};